<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!--   获取绝对路径 -->
<c:set var="ctx" value="${pageContext.request.contextPath}" />
<%@ include file="/common/include/include.jsp"%>
</head>
<body>

	<div id="content-container">
		<%@ include file="/common/include/pageTitleBread.jsp"%>
		<div id="page-content">
			<div class="col-sm-12 eq-box-sm">
				<div class="panel lion-fullHeight">
					<div class="panel-body">
						<shiro:hasPermission name="admin:role:save">
							<a id="add" class="btn btn-info data-toolbar"
								onclick="doPjax('${ctx }/admin/role/save')"
								href="javascript:void(0);"><i class="demo-pli-add"></i> 添加</a> 
						</shiro:hasPermission>
						
						<shiro:hasPermission name="admin:role:delete">
							<a id="del" class="btn btn-danger data-toolbar" onclick="delSel()"
								href="javascript:void(0);"><i class="demo-pli-cross"></i>
								批量删除</a>
						</shiro:hasPermission>
							
						<table id="pageTable" class="demo-add-niftycheck"
							data-toolbar="#del,#add" data-search="true"
							data-show-refresh="true" data-show-toggle="true"
							data-show-columns="true" data-sort-name="id"
							data-page-list="[5, 10, 20]" data-page-size="5"
							data-pagination="true" data-show-pagination-switch="true"
							data-toggle="table"></table>
					</div>
				</div>
			</div>
		</div>



		<!--  分页表格    -->
		<script>
			var col = [
					{
						field : 'checked',
						checkbox : true,
						align : 'center'
					},
					{
						field : 'id',
						title : 'id',
						align : 'center'
					},
					{
						field : 'name',
						title : '角色名称',
						align : 'center'
					},
					{
						field : 'identification',
						title : '角色标识',
						align : 'center'
					},
					{
						field : 'description',
						title : '描述信息',
						align : 'center'
					},
					{
						field : 'control',
						title : '操作',
						align : 'center',
						width : '440',
						formatter : function(value, row, index) {
							//通过formatter可以自定义列显示的内容
							//value：当前field的值，即id
							//row：当前行的数据
							var a = '<shiro:hasPermission name="admin:role:giveMenus"><a class="label label-table label-info" onclick="giveAuth(\''
									+ row.id
									+ '\')" href="javascript:void(0);" >授权</a>&nbsp;</shiro:hasPermission>';
							a = a
									+ '<shiro:hasPermission name="admin:role:update"><a class="label label-table label-success" onclick="doPjax(\''
									+ ctx
									+ '/admin/role/update?id='
									+ row.id
									+ '\')" href="javascript:void(0);" >编辑</a>&nbsp;</shiro:hasPermission>';
							a = a
									+ '<shiro:hasPermission name="admin:role:delete"><a class="label label-table label-danger" onclick="del(\''
									+ row.id
									+ '\')" href="javascript:void(0);" >删除</a></shiro:hasPermission>';
							return a;
						}
					} ];
			var opt = {
				//请求方法
				method : 'post',
				//是否显示行间隔色
				striped : true,
				//是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）     
				cache : false,
				//data-toolbar: "#demo-delete-row",
				//是否显示分页（*）  
				pagination : true,
				//是否启用排序  
				sortable : false,
				//排序方式 
				sortOrder : "asc",
				//初始化加载第一页，默认第一页
				//我设置了这一项，但是貌似没起作用，而且我这默认是0,- -
				//pageNumber:1,   
				//每页的记录行数（*）   
				pageSize : 4,
				//可供选择的每页的行数（*）    
				pageList : [ 2, 4, 6, 8 ],
				//这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据  
				url : ctx + "/admin/role/RolePages",
				//默认值为 'limit',传给服务端的参数为：limit, offset, search, sort, order Else
				queryParamsType:'limit',   
				////查询参数,每次调用是会带上这个参数，可自定义                         
				queryParams : function(params) {
					return {
						startRow : params.offset,//传递开始行数
						pageSize : params.limit,//传递每页显示的数据条数
					};
				},
				//分页方式：client客户端分页，server服务端分页（*）
				sidePagination : "server",
				//是否显示搜索
				search : false,
				//Enable the strict search.    
				strictSearch : true,
				//Indicate which field is an identity field.
				idField : "id",
				columns : col,
				pagination : true
			};

			//表格
			function initTable() {
				$('#pageTable').bootstrapTable(opt);
				//隐藏id列
				$('#pageTable').bootstrapTable('hideColumn', 'id');
			}
			function refreshTable() {
				$("#pageTable").bootstrapTable('refresh', opt);
				//隐藏id列
				$('#pageTable').bootstrapTable('hideColumn', 'id');
			}
		</script>


		<!-- 删除 -->
		<script type="text/javascript">
			//批量删除
			function delSel() {
				var data = [];
				$(
						"#pageTable input[type='checkbox'][name!='btSelectAll']:checked")
						.each(function() {
							data.push($(this).val());
						});
				if (data.length == 0) {
					pointLion.alertMsg("请选择要删除的数据!", "danger", null, null);
					return;
				}
				del(data);//执行删除
			}
			//删除
			function del(ids) {

				var roleids = new Array();

				if (ids instanceof Array) {
					roleids = ids;
				} else {
					roleids.push(ids);
				}

				pointLion
						.confimMsg(
								"您是否要删除所选信息 ?<br/> 点击确认进行删除 , 点击取消取消该操作",
								null,
								function() {
									//执行删除
									var data = common_ajax.ajaxFunc(
											"/admin/role/delete", {
												roleids : roleids
											}, "json", null);
									//删除结果
									if (data.success) {
										pointLion
												.alertMsg(
														data.message,
														"success",
														null,
														function() {
															doPjax(ctx
																	+ '/admin/role/getListPage');//跳转到列表页
														});
									} else if (data == "") {

										pointLion.alertMsg("您无删除该角色的权限",
												"danger", null, null);
									} else {
										pointLion.alertMsg(data.message,
												"danger", null, null);
									}
								});
			};
		</script>


		<!-- 授权 -->
		<script>
			//选择权限
			var giveAuthIframe;
			function giveAuth(roleid) {
				var index = layer
						.open({
							type : 2,
							title : false, //不显示标题栏
							area : [ '370px', '650px' ],
							shade : 0.8,
							id : 'selectOneMenu', //设定一个id，防止重复弹出
							resize : false,
							closeBtn : false,
							isOutAnim : false,
							btn : [ '确定', '取消' ],
							btnAlign : 'c',
							content : ctx
									+ '/admin/role/getGiveAuthPage?roleid='
									+ roleid,
							success : function(layero) {
								giveAuthIframe = window[layero.find('iframe')[0]['name']];
							},
							yes : function() {
								var nodes = giveAuthIframe.getCheckedNodes();
								var menuIds = [];
								$.each(nodes, function(i, o) {
									menuIds.push(o.id);
								})
								var result = common_ajax.ajaxFunc(
										"/admin/role/changeRoleAuth", {
											"menuIds" : menuIds,
											"roleid" : roleid
										}, "json", null);//保存所选角色权限
								if (result.success) {
									pointLion.alertMsg("权限设置成功", "success",
											null, null);
								} else {
									pointLion.alertMsg("权限设置失败", "danger",
											null, null);
								}
								layer.closeAll();
							}
						});
			}
			var roleAuth;
			function setRoleAuth(data) {
				roleAuth = data;
			}
			$(document).ready(function() {
				initFullHeight();//初始化高度
				initTable();//初始化树
			});
		</script>
	</div>
</body>
</html>